
package com.eva.framework.dto;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import com.eva.epc.common.util.ESerializable;

/**
 * <p>
 * 服务端返回数据的封装 对象(理论上服务端每次处理完后都会返回本对象，
 * 客户端可据此知道本次操作是否已经成功执行）.<br>
 * <p>
 * 	处理成功则DataFromServer对象中的sucess字值会被设置成true且returnValue会设置成处理完成的返回的对象
 * ，否则sucess将被设置成false且returnValue里存放的将是错误消息文本（该文本不能保证一定不是null）
 * </p>
 * </p>
 * 
 * @author Jack Jiang(http://www.52im.net/space-uid-1.html)
 * @version 1.0
 * @see com.eva.framework.HttpController.ends.core.HttpPotal#process(HttpServletRequest ,HttpServletResponse)
 */
public class DataFromServer implements ESerializable
{
	private static final long serialVersionUID = -2054860604702171939L;
	
	/** 处理成功与否的状态标识：true表示处理成功，反之表示失败 */
	private boolean success = true;
	/** 处理完成后的返回值（视具体业务而定
	 * ，一般来讲，服务器端处理请求时如遇失败，则本对象默认是一个Exception对象）  */
	private Object returnValue = null;
	private String fileName;

	private Boolean humanFace;

	public Boolean getHumanFace() {
		return humanFace;
	}

	public void setHumanFace(Boolean humanFace) {
		this.humanFace = humanFace;
	}

	public String getFileName() {
		return fileName;
	}

	public void setFileName(String fileName) {
		this.fileName = fileName;
	}

	/**
	 * <p>
	 * 处理是否成功执行（这个成功是指业务逻辑上是否正确被处理）. <br>
	 * 如果返回的success=false，则此时的returnValue存放的是错误消息文本.
	 * </p>
	 */

	public boolean isSuccess()
	{
		return success;
	}
	/** 设置处理是否成功执行（外部一般不需要手动设置本值，由eva.epc的控制器设置） */
	public DataFromServer setSuccess(boolean Success)
	{
		this.success = Success;
		return this;
	}
	
	/**
	 * <p>
	 * 获得服务端处理返回对象（可能是null，视具体业务而定）.<br>
	 * 如果isSuccess()==true则returnValuer值是处理完后的返回值，束则存放的是错误消息文本.
	 * </p>
	 * @return 服务端处理返回对象（这一般在服务端由eva.epc的控制器自已完成，无需外部干涉，它可能是null，视具体业务而定
	 * ，一般来讲，服务器端处理请求时如遇失败，则本对象默认是一个Exception对象） 
	 */
	public Object getReturnValue()
	{
		return returnValue;
	}
	/** 
	 * 设置服务端处理返回对象（这一般在服务端由eva.epc的控制器自已完成，无需外部干涉，它可能是null，视具体业务而定
	 * ，一般来讲，服务器端处理请求时如遇失败，则本对象默认是一个Exception对象） 
	 */
	public void setReturnValue(Object returnValue)
	{
		this.returnValue = returnValue;
	}
	
	/**
	 * 创建一个默认的 success==false 的DataFromServer新对象。
	 * 
	 * @since 20170708
	 */
	public static DataFromServer createDefaultFailed()
	{
		return new DataFromServer().setSuccess(false);
	}
}
